const AppError = require('../utils/appError.js')

//错误处理中间件。只支持捕获同步错误,异步错误应该使用 try-cath 捕获 并使用 抛出 error
const handleError = (err, req, res, next) => {
    if (err instanceof AppError) {
        return res.status(err.statusCode).json({
            statusCode: err.statusCode,
            errorInfo: err.errorInfo
        })
    }
    if (err.name == 'UnauthorizedError') {
        return res.json({
            statusCode: 401,
            errorInfo: '无效的token'
        })
    }
    console.log(err);
    res.status(500).json({
        errorInfo: '服务器错误',
        statusCode: 500
    });
}
module.exports = handleError
